#pragma once

#include "viml/value.h"
#include <vector>
#include <string>

namespace viml {

// ========================================
// 路径处理函数
// ========================================

/**
 * path_join(...) - 拼接路径组件
 * @param parts... String - 路径组件列表
 * @return String - 拼接后的路径
 */
Value path_join_builtin(const std::vector<Value>& args);

/**
 * path_normalize(path) - 规范化路径
 * @param path String - 原始路径
 * @return String - 规范化后的路径
 */
Value path_normalize_builtin(const std::vector<Value>& args);

/**
 * path_absolute(path) - 转为绝对路径
 * @param path String - 相对路径
 * @return String - 绝对路径
 */
Value path_absolute_builtin(const std::vector<Value>& args);

/**
 * path_dirname(path) - 获取目录部分
 * @param path String - 文件路径
 * @return String - 目录路径
 */
Value path_dirname_builtin(const std::vector<Value>& args);

/**
 * path_basename(path) - 获取文件名部分
 * @param path String - 文件路径
 * @return String - 文件名
 */
Value path_basename_builtin(const std::vector<Value>& args);

/**
 * path_extension(path) - 获取扩展名
 * @param path String - 文件路径
 * @return String - 扩展名（包括点号）
 */
Value path_extension_builtin(const std::vector<Value>& args);

/**
 * path_separator() - 获取当前平台的路径分隔符
 * @return String - 路径分隔符
 */
Value path_separator_builtin(const std::vector<Value>& args);

} // namespace viml
